package model.collision;

import param.GameParam;

/**
 * Detector di collisioni fra oggetti.
 * @author Max
 *
 */
public abstract class CollisionEngine extends Thread{
	
	private boolean isRunning = false;
	
	@Override
	public synchronized void start() {
		isRunning = true;
		super.start();
	}
	
	@Override
	public void run() {
		
		while (true) {
			
			if (isRunning) {
				checkCollision();
			}
			
			try {
				Thread.sleep(GameParam.COLLISION_CHECK_DELAY);								
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
		}
	}
	
	
	/**
	 * Definisce la routine da eseguire per il controllo delle collisioni.
	 * Metodo che viene eseguito ogni GameParam.COLLISION_CHECK_DELAY millisecondi.
	 */
	public abstract void checkCollision();
}
